Object identification using an optical scanner

ABSTRACT

A method to discriminate between multiple types of objects presented to a scanner is discussed. The method includes illuminating an object in a scan using a light source, performing multiple analog to digital conversions of light magnitude reflected off the object producing a multitude of digital values and processing the digital values using changes in the digital values and the light source position. One embodiment is a system which identifies blood sample vials a for blood testing. The system includes an optical scanner producing an analog output of a scan of a blood sample vial, a digitizer sampling the analog output to produce digitized scan data, a data processor interpreting the digitized data providing vial type identification information to the blood tester. The scanner used may also incorporate a barcode scanner to read barcodes affixed to the blood sample vials.

CROSS REFERENCE TO RELATED APPLICATIONS

[0001] This application is a continuation-in-part of U.S. patent application Ser. No. 09/918,035, filed Jul. 30, 2001 and titled CIRCUIT AND METHOD FOR CORRECTING INFLUENCE OF AC COUPLING.

FIELD OF THE INVENTION

[0002] The invention relates generally to the field of object detection and identification, and more particularly to object detection and identification using by processing data contained in light reflected by an object.

BACKGROUND OF THE INVENTION

[0003] Bar code is a prominent automatic identification technology used to collect information about persons, places, or things. Bar codes work much like Morse Code in which dots and dashes represent letters and numbers. However, unlike Morse Code, information in bar codes is symbolized by bars and the spaces separating the bars. The bars and spaces vary by thickness depending on the type of symbology. The ratio of the dimensions between wide elements and narrow elements in a bar code is typically referred to as the wide to narrow ratio. The dimension of the narrow bars and spaces is typically referred to as the “X” dimension, and the dimension of the wide bars and spaces is a multiple of the X dimension. The wide to narrow ratio is preselected according to the symbology.

[0004] Most bar code readers are comprised of a laser, an optical timing detector for synchronizing the start of each scan by the reader, a rotating multifaceted mirror for passing a beam produced by the laser across the bar code during a scan period and diverting light reflected back at the reader during the scan period towards an optically sensitive scan detector, the optically sensitive scan detector converting the reflected light into an equivalent electrical signal, a logic detector for converting the equivalent electrical signal into unique logic states, and a coupling for carrying the equivalent electrical signal from the scan detector to the logic detector. Typically, the optically sensitive scan detector includes a field effect transistor (FET) input gain stage that impresses a DC offset on the detected signal. As a result, the most common coupling employed between the scan detector and the logic detector is an AC coupling because it can be designed to remove the DC offset created by the scan detector. FIG. 1 shows a common AC coupling configuration comprising a resistor and a capacitor operatively connected to each other. FIG. 2 shows an exemplary output signal of the AC coupling depicted in FIG. 1. Note the DC offset of the output signal relative to 0 volts DC.

[0005] Two common conditions in the vicinity of the bar code can have a negative effect on the output signal of the scan detector. The first condition is a fluctuation in background light level. As the level of background light in the vicinity of the bar code changes the output signal level of the optical detector during the non-scan or no laser reflectance periods varies as well. Usually the effect of this first condition on the operation of the reader is negligible and may be ignored. The second condition is the degree of spectral reflectance from the background on which the bar code is printed or attached. The more reflective the background and/or the closer to perpendicular the angle of incidence of the laser beam with the target the higher the degree of spectral reflectance received by the optical detector. However, the amount of light reflected from the barcode itself during both the scan and non-scan periods is relatively independent of background type and remains essentially the same. This results in the average DC level of the optical detector output signal varying with the degree of spectral reflectance from the background. Moreover, an AC coupling between the optical detector and the logic detector will not remove the effects of the changes in average DC level of the optical detector output signal. If the spectral reflectance is high enough the effect can be to shift that portion of the optical detector output signal containing the bar code information outside the logic detector window of operation, thereby impairing the operation of the bar code reader. This condition is sometimes referred to as retro-reflectance.

[0006] To prevent retro-reflectance and compensate for the effects of spectral reflectance in general, highly reflective backgrounds are avoided where possible and fixed-mount bar code readers are typically designed with the lasers being pitched or offset a few degrees from perpendicular. The number of degrees from perpendicular that a laser must be placed to prevent bar code reader impairment is sometimes referred to as the reader's specular reflection zone. There are instances however where very useful information may be obtained from light reflected by a target in the vicinity of a highly reflective background during a scan period. For instance, where bar codes are being used to track and identify biological samples such as blood as they travel through an automated analysis system, it has been determined by the assignee of the present invention that information about the sample vessel itself (size, shape, fluid level, cover, insert, and the like) may be obtained from laser light reflected by the sample vessel in the vicinity of a highly reflective background. Accordingly, it would be very advantageous to use the optical detector output signal of a single bar code scanner for both purposes. Moreover, it would be highly advantageous if bar code readers could be designed so that no pitch or offset from perpendicular of the laser were necessary.

[0007] A system that incorporates the use of a barcode scanner instead of expensive robotic vision type systems would be advantageous in many object identification applications. Use of progressively corrected scan signals from a barcode type scanner also would be advantageous if a simple data processing scheme were developed to accurately interpret data contained within the scan signals.

SUMMARY OF THE INVENTION

[0008] The invention encompasses a method of generating a progressively corrected scan signal, the progressively corrected scan signal having a magnitude independent of spectral reflectance from a background near a target, and comprising generating a baseline signal by sampling light reflected from the target and background before transmitting a light scan at the target, generating a detected signal by receiving light reflected from the target and background while transmitting the light scan at the target, and subtracting the baseline signal from the detected signal to form the progressively corrected scan signal. The target may be any number of things including, but not limited to, a barcode and a sample vessel.

[0009] The invention further encompasses a circuit for producing an average level independent output signal from an input signal subject to fluctuations in average level, and comprising a sample signal generator comprising an input and an output, the sample signal generator input receiving a sample timing signal, a sample-and-hold circuit comprising an input, an output, and a sample trigger, the sample-and-hold input receiving the input signal subject to fluctuations in average level, the sample trigger operatively coupled to the sample signal generator output, and a voltage amplifier comprising an input and an output, the amplifier input operatively coupled to the sample-and-hold output, the amplifier output operatively coupled to the sample-and-hold input. The input signal may comprise an optical detector output signal, and the optical detector signal may represent light reflected from a target and a background during a scan period.

[0010] The invention encompasses a method for discriminating between multiple types of objects presented to a scanner. The method may include illuminating at least one portion of an object in a scan using a light source from the scanner, performing multiple analog to digital conversions of light magnitude reflected off the object producing a multitude of digital values and processing the multitude of digital values using changes in the digital values and the light source position. The processing results in the determination of the type of object presented to the scanner.

[0011] One embodiment of the invention includes a system which identifies blood sample vials a for a blood testing device. The system includes an optical scanner producing an analog output of a scan of a blood sample vial, a digitizer receiving and sampling the analog output to produce digitized scan data, a data processor interpreting the digitized data providing vial type identification information to the blood testing device, and a barcode reader, associated with the optical scanner, providing blood sample information to the blood testing device. The blood testing device may receive blood sample information and/or vial type identification information to accommodate handling of blood sample vials.

BRIEF DESCRIPTION OF THE DRAWINGS

[0012] These and other features, aspects, and advantages of the invention will become better understood in connection with the appended claims and the following description and drawings of various embodiments of the invention where:

[0013]FIG. 1 shows a prior art coupling circuit;

[0014]FIG. 2 shows an exemplary output signal of the coupling circuit depicted in FIG. 1;

[0015]FIG. 3 shows a coupling circuit in accordance with a first embodiment of the invention;

[0016]FIG. 4 shows an exemplary output signal and a number of signal waveforms at various points of the coupling circuit depicted in FIG. 3;

[0017]FIG. 5 shows a flow diagram of a method for generating a progressively corrected scan signal in accordance with one embodiment of the present invention;

[0018]FIG. 6 depicts an object process control system which includes elements of the present invention;

[0019]FIG. 7 depicts an object carrier holding blood sample vials that are scanned in one embodiment of the present invention;

[0020]FIG. 8 depicts one edge of an object carrier holding a blood sample vial and exemplary scan traces produced in a process control system utilizing one embodiment of the invention;

[0021]FIG. 9 shows an exemplary analog output waveform for multiple scan traces of an object in a system utilizing one embodiment of the invention;

[0022]FIG. 10 shows a generalized flow diagram of an exemplary process using elements of an embodiment of the invention; and

[0023]FIGS. 11a and 11 b are flow diagrams for the data processing performed by in a blood analysis embodiment of the invention.

DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS

[0024] Throughout the following detailed description similar reference numbers refer to similar elements in all the figures of the drawings. FIG. 5 shows a flow diagram of a method 500 for generating a progressively corrected scan signal in accordance with one embodiment of the invention. The process starts in step 501. In step 505 a sample of the light reflected from a target is taken immediately before a light scan is to be transmitted at the target. The target may comprise any number of objects and/or printing thereon including, but not limited to, bar codes and sample vessels. In step 510 the process generates a baseline signal by converting the sampled optical signal into an equivalent electric signal. In step 515 a light scan is transmitted at the target. In step 520 the process receives light reflected from the target while the light scan is being transmitted at the target. In step 525 the process generates a detected signal by converting the received optical signal during transmission of the light scan into an equivalent electrical signal. In step 520 the process generates the progressively corrected scan signal by electrically subtracting the baseline signal from the detected signal. In step 535 the process ends.

[0025]FIG. 3 shows a first embodiment of a coupling circuit 300 for implementing process 500 described in connection with FIG. 5. Circuit 300 is comprised of a sample signal generator, a sample-and-hold circuit, and a voltage amplifier. In this first embodiment of the invention the sample signal generator comprises a differentiator formed by capacitor C3 and resistor R8 and an inverting pulse amplifier Q1. The input of the differentiator receives a sample timing signal and the output of the differentiator is operatively coupled to the input of the inverting pulse amplifier (in this embodiment the base of PNP bipolar transistor Q1). An exemplary waveform of the sample timing signal is shown in FIG. 4 as Sample. The input waveform to inverting pulse amplifier Q1 is shown in FIG. 4 as Differential. The time constant of the differentiator is selected such that it can differentiate the edges of the sample timing signal received at the differentiator input. The output of the inverting pulse amplifier (in this embodiment the collector of PNP bipolar transistor Q1) is operatively coupled to the sample trigger of the sample-and-hold circuit. Resistors R5 and R6 place the inverting pulse amplifier output signal, whose waveform is shown in FIG. 4 as Sample Pulse, at the voltage level appropriate for the particular sample-and-hold circuit employed.

[0026] In circuit 300 the sample-and-hold circuit comprises a sample-and-hold circuit No. AD781 U1 having pins 1-8. Circuit U1 has an input comprising pins 2 and 3. U1 pin 3 comprises a reference input and is operatively coupled to ground. U1 pin 2 comprises a positive input and is configured to receive the input signal from a light scan detector. An exemplary waveform of an input signal from a light scan detector is shown in FIG. 4 as Scan In. The portion of the Scan In waveform labeled Dark Zone represents the voltage level of the input signal when no light scan is being transmitted at a target. U1 pin 7 comprises the sample trigger that is operatively coupled to the output of the sample signal generator. U1 pin 1 is operatively coupled to a positive voltage source and U1 pin 5 is operatively coupled to a negative voltage source. U1 pin 8 comprises the output of the sample-and-hold circuit and is operatively coupled to the input of the voltage amplifier through resistor R2. The waveform of the output signal generated at U1 pin 8 in the presence of the exemplary Scan In signal is shown in FIG. 4 as U1-8 Out.

[0027] Referring still to FIG. 3, the voltage amplifier in the circuit 300 embodiment of the invention comprises an Operational Amplifier No. 0P07 voltage amplifier U2 having pins 1-8. Amplifier U1 has an input comprising pins 2 and 3. U2 pin 3 is a positive input and is operatively coupled to ground. U2 pin 2 is a negative input and is operatively coupled to sample-and-hold circuit U1 output pin 8 through resistor R2. U2 pin 2 is also operatively coupled to U2 output pin 6 through resistor R9. The gain of voltage amplifier U2 is determined by the ratio R9:R2. In this embodiment of the invention R9 has a value of 30 k ohms and R2 has a value of 10 k ohms, which produces a gain of 3. U2 pin 7 is operatively coupled to a positive DC voltage source and U2 pin 4 is operatively coupled to a negative DC voltage source. U2 pins 1 and 8 are left open. The waveform of the output signal generated by U2 at pin 6 in the presence of the exemplary Scan In signal is shown in FIG. 4 as U2-6 Out.

[0028] Resistors R7 and R3 form two branches of a summing junction which is fed by the Scan In signal and the output of the voltage amplifier. In particular, voltage amplifier U2 pin 6 is operatively coupled to the branch of the summing junction containing resistor R7 and sample-and-hold circuit U1 pin 2 is operatively coupled to the branch containing R3. The ratio of R3:R7 controls the amount by which the voltage of the Scan In signal is attenuated. In the circuit 300 embodiment of the invention R3 has a value of 1 k ohms and R7 has a value of 3 k ohms which results in approximately a 25% reduction in the magnitude of the Scan In signal. The waveform of the output signal produced by circuit 300 in the presence of the exemplary Scan In signal is shown in FIG. 4 as Scan Out.

[0029] In operation, circuit 300 continuously receives the output (Scan In) of a light scan detector (not shown) at the sample-and-hold circuit U1 input and the leg of the summing junction containing resistor R3. Circuit 300 also continuously receives a sample timing signal (Sample), a periodic square wave, at the input to the differentiator formed by capacitor C3 and resistor R8. The period of time immediately before a light scan is about to be transmitted corresponds to a period of time following the trailing edge of the Sample signal. When the trailing edge of the Sample signal is presented to the differentiator a negative pulse is produced at the output of the differentiator (Differential). The negative pulse produced at the output of the differentiator is received at the input to the bipolar transistor Q1 and causes transistor Q1 to produce a positive pulse at its output (Sample Pulse). The positive pulse produced at the output of transistor Q1 is received at the sample-and-hold circuit sample trigger. Receipt of the positive pulse at the sample trigger causes sample-and-hold circuit U1 to capture the voltage level of the Scan In signal during the Dark Zone or zero light scan reflectance from the target portion of the Scan In signal and continuously output that Dark Zone voltage level (U1-8 Out) to the voltage amplifier U2 input until the next positive pulse is received. Voltage amplifier U2 inverts and amplifies the U1-8 Out signal it receives from sample-and-hold circuit U1 (U2-6 Out). Finally, the summing junction formed by R3 and R7 combines the U2-6 Out signal with the Scan In signal to produce an output signal (Scan Out) having an absolute level or level independent of fluctuations in the average DC level of the Scan In signal.

[0030] In another aspect of the invention, the circuit of FIG. 3 may be used as part of a system that can utilize an analog output of a barcode scanner to aide in the identification and subsequent processing of scanned objects. FIG. 6 is a block diagram of a system utilizing an embodiment of the invention to automate an overall process. The object process control device 610 may be used to control the automated process performed on object/target 620. An optical scanner 630 may be used to determine the digital content of a barcode affixed to the object. This may be accomplished by decoding the digital content present in reflected light 636 off of object 620 resulting from incident light 635 from the optical scanner 630. A standard barcode digital data output 637 may be available to the object process control device 610. It is an assumption in this instance that although an encoded barcode strip is placed on the object, the barcode strip does not necessarily identify the form off the object itself. This may occur, for example, if the affixed barcode strip on the object indicates a source of the object, for example, but the object itself may be of several different physical forms. In order for the object process control device 610 to properly control an operation to be performed on the device, it may be necessary to understand the physical form of object or target 620 as well as the identification of source data from the barcode strip. The present invention allows the performance of both functions using the same light from optical scanner 630.

[0031] One specific implementation of the system depicted in FIG. 6 is the automation of blood testing. The object process control device is an automated blood testing device in an analysis laboratory. Multiple samples of blood in various type of vials (the object) may be placed in carriers that are transported via conveyer belt into a blood sample handling and testing device (the object process control device). An example of such a carrier with differing blood sample vials is shown in FIG. 7. In this example, although all of the blood samples are labeled with the source via a barcode strip, the types of blood sample vials (objects) vary in form and function and are unknown to the process control device. Therefore, in order for the process control device to properly provide the correct mechanical handling of the individual vials and perform the correct process or action upon each sample vial, the physical type of sample vial must be determined along with the source information from the barcode. This may be accomplished with the present invention via the use of a single barcode scanner.

[0032]FIG. 7 shows a typical carrier 710 having eight slots for the insertion of blood sample vials from various sources. The barcodes 715-719, 721-722, are encoded with information concerning the source of the blood sample such as the medical facility where the blood sample was taken, the date the sample was drawn, and the patient's identifying information. However, the physical form of the vial itself is unknown when the vial is presented in a carrier to a blood analysis device (i.e. an object process control device 610). For example, vial 720 is a tapered vial, 730 is a tall vial without a cap, 740 is a vial with a rubber stopper, 750 is a tall vial with a sarstedt style cap, 760 is a short vial with an insert, vial 770 is missing, 780 is a plastic cap vial and 790 is a short vial without a cap or insert. Vials may also be wide or thin depending on manufacturer. The invention allows the identification of not only the barcode information on the individual sample vials, but also the type of vial used.

[0033] Returning to FIG. 6, optical scanner 630 may be modified to provide an analog output 638 representing the magnitude of the reflected light 636. This may be accomplished within the optical scanner in multiple ways including splitting the optical return path within the scanner before the discrimination of digital data for the barcode reader function, or it may simply be a light to analog electrical signal which is distributed as an electrical analog output. In either event, a digitizer 640 is used to convert the analog output 638 representing the reflected light 636 to a digital format. If the analog output 638 is an electrical analog signal, then the digitizer 640 may include a sample and hold circuit correcting for the influence of AC coupling as shown, for example, in FIG. 3. Additionally, the digitizer includes an analog to digital converter and possibly temporary storage for the digital data produced by the conversion of the analog output to 638 into digital form. In order to determine when the digitizer 640 is to perform the analog to digital conversion, a timing signal 639 is also provided to the digitizer 640 from the optical scanner. After analog to digital conversion, a digitized data processor 650 may be informed of the arrival of new data via a data ready signal 641 and consequently respond by requesting data via a data send signal 642. The digital data signals 643 may then be transferred from the digitizer 640 to the digitized data processor 650. Analog to digital converters, digital storage devices, handshaking signal drivers and receivers, and data drivers and receivers are well known in the art and are easily constructed to interface to the circuit of FIG. 3 and may be included in the digitizer 640.

[0034] Digitized data processor 650 performs the task of analyzing the digitized data acquired via the optical scanner to determine various characteristics of the object 620. The digitized data processor 650 includes a processor, program memory, storage memory, and input/output devices sufficient to transfer data from the digitizer, process the data to make a determination of the form of the object/target under scan, and provide the processed data 651 to the object process control device 610. The digitized data processor 650 processes the digitized data via algorithms that tailor the detection of various types of forms of the object. For example, the algorithms within the digitized data processor may seek detections of the top of an object in order to determine it's height. If other characteristics, such as the presence of a tapered top or the width of an object is detected via data processing, then an object may be identified as belonging to a class of objects for which the software is written to detect.

[0035] As noted above, one application of the present invention is to utilize the unique circuitry exemplary depicted in FIG. 3 (e.g., within the digitizer 640 of FIG. 6) with the analysis software described below (e.g., within digitized data processor 650). One embodiment of the present invention may be used in connection with a blood analyzer as the object process control device 610. In this embodiment, the optical scanner may be any optical scanner known in the art such as a MICROSCAN® brand model MS-710 bar code scanner as available through Microscan Incorporated, 1201 SW 7^(th) Street, Renton, Wa. 98055. The analog output 638 may be obtained by modifying the scanner to tap and port the electrical analog signal prior to digital discrimination out of the scanner and into the digitizer 640. This is normally available after conversion of the reflected light into an electrical analog form. This is easily performed using an optical detector as is well known and practiced by those of skill in the art.

[0036] System timing may be determined by the operation of the scanner and the application of the scanner to the sample vials or objects of the scan. A laser beam produced by the optical scanner 635 is directed at a highly reflective background and moved vertically from top to bottom at a fixed velocity and at a repetitive rate. Each reflected beam is detected by an optically sensitive scan detector within the optical scanner 630 and produced as an analog output signal 638. As an object, such as a sample vial, is passed horizontally in front of the beam at a fixed velocity, a series of analog signals are generated. The analog signal is then digitized by a high speed digitizer.

[0037] As previously noted, the digitizer 640 of FIG. 6 may then convert the analog information in each scan track into digital information. The timing of the system may be such that after each scan track shown in FIG. 8 is taken, the digitizer 640 converts the analog signal into digital bytes representing the magnitude of the light reflected off of the object being scanned. For example, the digitizer performs multiple back to back analog to digital conversions during the scan track of 860 to 865 of FIG. 8. Conveniently, the processing of the resultant digital data bytes is conducted during the time the scan stops and returns to begin a new scan trace (i.e. during the time between 865 and 870). This timing is typical of all scan traces in the depicted embodiment of the invention, but other timing schemes may be utilized.

[0038]FIG. 8 shows how a typical scan may appear if traced across an object such as a vial in a carrier. A carrier 710 holds one or more vials and is presented to the optical scanner. In this example, the scanner is fixed and the carrier is moving in a known direction 800 relative to the carrier. The scanner begins a scan from the top of a scan window 810 and moves downward to a point where the beginning of a carrier may be detected at point 815. Note that the window of data processing for carrier detection 890 includes the area where the scan crosses over onto the carrier, whereas the window of data processing for vial type detection 895 excludes the carrier and includes more area above the vial.

[0039] At the conclusion of one scan track 810-815, the scanner quickly returns to the beginning of the next scan 820. This process of scanning a moving object may produce scan tracks as shown in FIG. 8 (810-885). Note that the forward movement of the carrier and vial during the scanning action period effectively produces a diagonal track along the face of the object being scanned. As the scanner continues to scan and as the object continues to move forward, multiple scans are taken of the object.

[0040] Ignoring for the moment the action of the bar code reader within the scanner and focusing attention on the analog output 638 of the optical scanner, a time versus analog signal can be generated as shown in FIG. 9 for the respective scan tracks of FIG. 8. FIG. 9 shows a representative analog output 638 for the scan tracks of 830-885 of FIG. 8. The FIG. 9 representation is the analog value of the reflected light 636 being returned by the first vial 790 in carrier 710 represented in FIGS. 7 and 8. Referring to FIG. 9, a maximum reflection analog value occurs at the beginning of scan trace 830. This is a maximum value because of the reflective background presented to the optical scanner. A minimum reflection may occur when no analog to digital conversion is occurring. This event occurs when the scan trace is restarting at the bottom end of one scan trace to the top beginning of a next scan trace. The first in time waveform of FIG. 9 shows a maximum reflection analog output because the scan trace from 830 to 840 does not touch a vial. The next scan trace, beginning at 845 also has a maximum refection until the scan reaches the side of the first vial 790 at point 850. The vial has less reflectance than the background, thus the analog reflection level falls. The analog pattern continues until the end of scan trace is reached at point 855. The next scan begins at a maximum reflection value at 860 until the trace reaches the top of the vial 790 at point 862. The analog output indicates the reflected light magnitude of the scanner light upon the vial until the scan trace ends at point 865. The next scan trace begins at maximum reflection point 870 until the top of the vial is sensed at point 872. The scan trace returns to a maximum reflection value at point 873 where a high reflective background is again seen. Finally, FIG. 9 shows the last scan trace of 880 to 885 where no vial is present and a high reflection is once again seen at the analog output.

[0041] Additionally, the embodiments depicted exhibit a vertical resolution that is defined by the vertical length that each scan trace covers and is related to the data sampling rate of the digitizer. In these embodiments, the scan trace rate is normally set to 2 milliseconds per scan. As an object moves at a rate of 2 inches per second through the scanner beam horizontal motion between each scan trace is 0.004 inches. A data sampling rate of 400 KHz is used for the digitizer and the time per sample is 2.5 microseconds. If the scanned surface is located at approximately 5 inches from the mirror reflecting the optical scanning source, then there are approximately 110 samples per inch at the measurement plane in center of the scan. This corresponds to vertical resolution of 0.009 inches per sample. The time required to capture a 4.5 inch vertical sample is approximately 1.25 milliseconds. Each digitized scan is stored in memory as it is captured and during the transition time to the next scan the data is analyzed for various characteristics and the result stored for final evaluation.

[0042]FIG. 10 is a simplified and generalized flow diagram for the data acquisition and processing performed by an embodiment of the current invention. The embodiment includes a blood analysis process control which utilizes the blood sample vials loaded in a carrier such as the one shown in FIG. 7. The process starts at 1000 and initializes the scanner hardware to begin looking for a carrier 1010. After a carrier has been detected, a new scan trace is initiated 1020. Analog to digital conversions at the A/D sample rate are taken by the digitizer and stored during the scan operation 1030. Normally, when digitizer data becomes ready, the digitizer asserts a data ready signal which informs the digitized data processor to read the digitized data taken during the single scan trace. The decision at step 1040 searches for the assertion of the data ready signal and waits 1042 for the signal. Upon assertion, the process moves to step 1060 which reads the digitized data. The digitized data processor then executes software which processes the data to determine characteristics of the vials scanned 1070. The resulting identification of the vial type is then provided to the blood analysis process controller 1080. Optionally, results of the data processing may be displayed 1090. Step 1095 asks if the all of the vials in a carrier have been scanned and the carrier analysis is complete. If there are more vials in the carrier to scan, then the process loops back 1096 to step 1020 to begin the next trace. If the carrier analysis is complete, the process loops back 1097 and begins to look for the next carrier.

[0043] An alternative to starting a new scan trace upon completion of the data processing via loop 1096, where the scanner hardware is continuously operating the process may loop back to the first decision step 1040 and simply await the arrival of data available from the scanning and A/D conversion process.

[0044] Step 1070 of FIG. 10 represents the processing of the digitized scan information. An embodiment of this software is able to recognize a number of unique items such as the start of a carrier, the presence of a vial in carrier slot, the width of the vial, the height of the vial, the shape of the vial, the presence of a cover on the vial, the type of cover on the vial and the presence of an insert in the vial. As each digitized scan is evaluated a series of tests are performed to determine the properties of the scan. In one embodiment, the derivative of the analog to digital converted reflectance signal is evaluated to determine the starting and ending edge of the vial. The time from the start of an edge until the end of the edge is used to establish if there is a cover of any type on the vials as are changes in height as the vial moves through the scan. When a derivative process has detected a vial edge, the number of scans detected and the characteristic profile for the vial may be compared to a recognition table to determine the type of vial. Alternatively, flags or other means may be used as the data is analyzed to make a determination regarding what type of vial is present.

[0045] The following analysis techniques are used to determine the characteristics of a vial in the exemplary embodiments of the invention depicted in the figures. The start of a carrier is determined by checking time from the start of a scan until the leading edge of the carrier is detected. Normally, this will be within a narrow time due to the fixed height of the leading edge of the carrier. The presence of a vial in a carrier slot is recognizable by counting the number of scans from the start of the carrier to each slot position and determining if any vial has been detected in the slot. This is valid where the horizontal motion is a constant so that the time to reach each slot in a carrier where a vial may be is a constant. The width of the vial is determined by counting the number of scans in which a vial is detected at the center of the scanned height. The height of the vial is determined by measuring the time from the start of the scan until a vial edge is detected. The shape of a vial is determined by comparing the resultant detected scans for the various characteristics as stored in a table in the software. The presence of a cover on vial is determined by detecting a starting and ending edge on the vial. The type of cover on a vial is determined by comparing the resultant detected scans for the various characteristics as set in flags or stored in a table in the software. The presence of an insert in the vial is determined by detecting the narrow lip of the insert present at the top of the vial.

[0046]FIGS. 11a and 11 b are detailed flow diagrams for exemplary data processing performed by an embodiment of the invention used in a blood analysis system. The process starts by initializing memory variables in step 1110 of FIG. 11a. Table 1 herein provides a listing of the memory variables that are defined prior to the start of the data capture and analysis. Step 1111 initializes the digitizer hardware. Step 1112 initializes the window of data processing for carrier detection 890 shown in FIG. 8. This step limits the processing to digitized sample values that lie within the range of the carrier edge in a scan trace. This reduces the processing of data needed in order to detect a carrier edge because a carrier edge can occur in only one predictable range within a single scan trace. The value of the variable start corresponds to a position in memory where the digitized data of a scan is located. It also corresponds to a position of the light beam in a scan trace. Thus, by initiating a value of start, the data processing may begin at a position in the scan where the detection of a carrier edge (as it moves into the scan beam) is likely to occur. In step 1112, the value of start is set to a known position of the edge of the carrier (carrier start) minus 100 memory locations or 100 A/D samples before the edge of the carrier is expected to occur.

[0047] Step 1113 combines the activities of waiting for the data ready signal, requesting data from the digitizer, storing the data for one scan trace, and setting the memory data pointer to the value of the start variable. The data ready signal is generated by the digitizer to indicate that the analog data of the reflected light from the carrier or vial has been digitized and is awaiting retrieval. The data is retrieved one byte at a time for analysis at step 1114. The derivative, or change in slope of the retrieved data, is taken by subtracting the magnitude of the current data byte from the magnitude of the previous data byte at step 1115. Next, the derivative is compared to a minimum slope value at step 1116 to overcome a noise threshold needed because of such factors as background noise and A/D conversion noise. If the derivative value is not beyond the minimum slope threshold, then the step 1117 decision is made based on the value of the data pointer compared to the value of the analysis length variable. If the data pointer is not equal to the analysis length, then more data remains to be analyzed and the process increments the data pointer 1118 and returns back to step 1114 to retrieve the next byte of digitized data from the scan trace. However, if the derivative of the data in step 1116 is greater than a minimum noise value, then the process moves to step 1119 where a carrier detect flag is checked. Initially, no carrier has yet been detected, so a negative result brings the process to step 1120 where the physical position (slope position) of the light beam corresponding to the sample byte being processed is compared to a known position for the beginning of a carrier (carrier start). Assuming that the position corresponds to the plausible beginning of a carrier, then the process would indicate that a carrier edge has been detected and step 1121 would set a carrier start flag, set start to the start of the analysis, and set the data pointer to be the analysis length.

[0048] Once a carrier has been detected the process moves from step 1121 to step 1117 where the end of analysis is queried by comparing the data pointer to the analysis length. Immediately after a carrier detection, and execution of step 1121, the process would pass through step 1117 to step 1153 and the missing counter would be incremented. The slope detect flag is checked in step 1122. No such flag has been set at this stage in the analysis. Step 1154 is used to determine if the value of the width counter is greater than the variable width. The value width is a minimum value used to determine if a vial is present. In this instance, since only a carrier was detected, the slope arrays are cleared, the slope counter is cleared at step 1124 and the missing counter is checked at step 1125 to see if the count is greater than the variable missing which is the number of scans between vials in a carrier. Since a carrier detect has just occurred, the result of the step 1125 query is a loop back to step 1113 where a new set of scan data is acquired.

[0049] After a carrier is detected, and no new slopes are encountered because no vial is encountered, the process of FIG. 11a would execute steps 1113 through 1116 where a no slope indication would invoke the loop of steps 1117 and 1118 for each byte of digitized data. Eventually, an end of analysis scan data analysis would be reached at the decision at point 1117. A yes condition would increment the missing counter at 1153, but still no slope would be detected at step 1122 and steps 1154, 1124 and 1125 would be executed as before. Eventually, if no vial were present, this process would continue until the result at step 1125 would indicate a maximum number of scan traces have occurred and that a vial was missing from the carrier. At this point the decision at step 1125 would progress to step 1126 and step 1127 (See FIG. 11b) would be executed. Step 1127 formats the results and step 1128 sends the results data to an external process control system. In this instance, the external process control system may be a blood analyzer and sample vial handler. Optionally, the results could be displayed so that the scanning process could be periodically monitored. As an example, an indication that a vial is missing could be displayed. The process then continues at step 1130 which increments the vial count. Step 1131 checks to see that all eight vials (number 0-7) have been analyzed. In this case, since only one vial has been analyzed, the process moves back to step 1113 (See FIG. 11a) and awaits a new set of scan trace data.

[0050] The detection of a vial in a carrier can begin in a scan trace with the detection of a derivative or a change in slope at step 1116. After the carrier detect, step 1119 would result in step 1132 (FIG. 11a) being executed. If a slope is positive, an edge going from a highly reflective background to a less reflective object would be detected. A negative slope or derivative would be that which moves from a less reflective object to a highly reflective background. If the slope at step 1132 is positive, the result would be stored in a positive slope memory array 1133. If a negative slope were encountered, the result would be placed in a negative slope memory array 1134. At the initial detection of a vial body, the slope would be positive and the process would move to step 1117 where the end of the analysis would be determined. Assuming the end of the analysis is not reached, the program would increment the data pointer 1118, and retrieve the next byte of scan trace data to be analyzed 1114. This process would continue until all of data bytes within an analysis range are used. All of the various positive and negative slopes would be recorded in the slope arrays and the data pointer would eventually reach the analysis length at step 1117 and the missing counter would be incremented 1153. Since the slope detect flag would be set, the query at step 1122 would pass to step 1123 which would clear the slope detect and increment the width counter. The process would then return to step 1113 to process the next scan trace data that is available from the digitizer.

[0051] At some point in the process, a scan trace will move beyond the vial and a scan without derivatives in the analyzed data bytes will occur. This will cause the slope detect to fail at step 1122 and a test of the width of the vial will be determined at step 1154. The presence test at step 1123 will pass and the process will move to step 1135 (Sec FIG. 11b). Step 1135 calculates parameters S1 and S2, comparing slopes so that step 1136 may test for the taper condition. If there is a taper, the taper flag is set 1137. If there is no taper, the presence of an insert is tested by looking for a thin edge at the top of a vial in step 1138. If an insert is present, an insert flag is set 1139. If either the taper fag 1137 or the insert flag 1139 is set, the process moves to step 1140 which tests to see if the vial is of the wide variety or not. If the vial is of the wide variety, the wide flag 1141 is set. If not wide, then the process at 1140 moves directly to the height test at 1142. Height is tested at a position in the data located at width/2 to determine the height of the vial at the middle of the vial. If the data at the slope position is greater than the variable height, then the data indicates that the vial exceeded the minimum requirement for being a tall vial. If the vial is tall, the result of step 1142 moves to step 1143 which sets the height flag. If the vial is tall or not, the process moves to step 1127 which formats the analysis data, then sends the results 1128 to an external process control system.

[0052] If the analysis of the taper 1136 and insert 1138 are negative, the vial may be checked for a sarstadt type. Step 1144 sets a value of the step variable to be the positive slope position at the width counter/2 minus the 2^(nd) positive slope position. The value of step is then tested in step 1145 to check if it is greater than the minimum height of a sarstadt cap step. If it is, a sarstedt flag is set in step 1146. If the step size is not of a sarstedt cap step, then a cap test is performed in step 1147. A variable cap height is determined from the data and the cap height is tested to be either plastic at step 1148 or rubber at step 1149. If the cap height is one indicative of a plastic cap, a plastic flag is set at step 1150 and if the cap is rubber, a rubber flag is set at step 1151. If the analysis indicates that the vial is a sarstadt, has a plastic cap, or has a rubber cap, the process moves to step 1140 to determine width. As before, after width is determined, height is determined at step 1142. If the vial is a tall one or not, the flags are read, the data is formatted in step 1127 and results sent 1128 to an external process control system.

[0053] The above process repeats until all eight vials (0-7) are analyzed. At the end of the process, the vial count is equal to 8 and step 1131 progresses to step 1152. Here, the vial count is cleared, the carrier flag is cleared, and the entire process returns to step 1112 (See FIG. 11a). At this point the complete process begins again as the search for the next carrier edge is sought by the analysis software. TABLE 1 Sample length number of samples to be taken by digitizer and stored in memory Data Sample rate 400 KHz sampling rate = 2.5 uSec/sample Start position in memory of first digitized sample corresponding to a physical position of data acquisition within a scan. Start polarity transition direction of start signal Start of analysis samples to skip from the start signal Analysis length number of samples to be analyzed Carrier Start sample position of vial carrier start edge Slope minimum magnitude of derivative Insert minimum sample difference to determine insert presence Taper position change of slope for tapered vial Width minimum number of scans to determine vial presence Height minimum sample position for tall vial Wide minimum number of scans to determine wide vial Sarstedt minimum height of sarstedt cap step Missing maximum number of scans between vials Missing Counter counter used to accumulate the number of scan traces Slope Detect flag indicating that a slope has been detected.

[0054] While the invention has been described in connection with the embodiments depicted in the various figures, it is to be understood that other embodiments may be used or modifications and additions may be made to the described embodiments for performing the same function of the invention without deviating therefrom. For example, one skilled in the art will appreciate that each of the circuit elements described above in connection with the FIG. 3 embodiment of the invention may be implemented in any of a multitude of sub-circuit assemblies capable of performing the same functions as the depicted circuit elements. Moreover, the invention need not be implemented in hardware alone but may be embodied in a combination of hardware and software and/or software alone. Therefore, the invention should not be limited to any particular embodiment shown and described above, but rather construed in breadth and scope in accordance with the claims appended below. 

We claim:
 1. A method for determining characteristics of an object, comprising: scanning an object with an optical source to produce an analog reflected light signal, the scanned object residing forward of a background reflective enough to produce contrast between the scanned object and the background that is discernable in a digitized version of the analog reflected light signal; sampling the analog reflected light signal to obtain a sampled reflection signal; converting the sampled reflection signal into a series of digital values; and processing the digital values to determine the characteristics of the scanned object.
 2. The method of claim 1, wherein the characteristics include one or more of the group consisting of position, width, height, shape, contents, and attachments of the object.
 3. The method of claim 1, wherein the processing comprises searching for magnitude changes in sequential digital values to indicate the presence of an edge of the object.
 4. The method of claim 3, wherein the processing further comprises distinctly detecting object edges corresponding to optical source illumination scanning from the reflective background onto the object and from the object and onto the reflective background.
 5. The method of claim 1, wherein the optical source is light from a barcode scanner.
 6. A method for discriminating between types of objects presented to a scanner, comprising: illuminating at least a portion of an object during a scan with a light source in the scanner sampling light reflected from the object during the scan to obtain a first sampled reflected light signal; performing at least two analog to digital conversions of the first sampled reflected light signal to produce at least two digital values; and determining an object type by processing the at least two digital values using knowledge of light source position relative to the scanned object.
 7. The method of claim 6, wherein the object is located in an object carrier, and the method further comprises: illuminating at least a portion of the object carrier during the scan with the light source; and sampling light reflected from the object carrier during the scan to obtain a second sampled reflected light signal indicating the presence of the object carrier.
 8. The method of claim 7, wherein the multiple objects are medical sample vials.
 9. The method of claim 8, wherein each medical sample vial is associated with a barcode which is read by the scanner.
 10. The method of claim 6, wherein the at least one portion comprises the top of an object.
 11. The method of claim 6, wherein the processing comprises: arithmetically manipulating the at least two digital values to determine if a change of shape has occurred along a path of the scan.
 12. The method of claim 6, wherein the type of object includes one or more of the group consisting of position, width, height, shape, contents, and attachments of the object.
 13. The method of claim 6, wherein the scanner is a bar code scanner with a reflected light analog output.
 14. The method of claim 6, further comprising: repeating the illuminating, sampling, performing, and determining steps to determine the width of the object.
 15. The method of claim 6, wherein the processing step includes determining the height of the object.
 16. The method of claim 6, wherein the objects are medial sample vials, and the determining step includes determining if the objects have one or more of the group consisting of a tapered top, a cap, the absence of a cap, and an insert.
 17. A system for identifying objects, comprising: an optical scanner for illuminating with light an object residing forward of a reflective background during a scan; a digitizer for receiving and sampling an analog reflected light signal produced by the illumination of the object during the scan; and a data processor that determines a type for the object by discerning changes in magnitude of sequential portions of the digitized data output by the digitizer indicative of an edge of the object.
 18. The system of claim 17, wherein the optical scanner also acts as a barcode scanner.
 19. The system of claim 17, wherein the digitizer comprises a progressively corrected scan signal circuit allowing the digitized data to accurately represent the magnitude of the analog reflected light signal independent of any spectral reflectance received from the reflective background during the scan.
 20. The system of claim 19, wherein the background is a highly reflective background.
 21. The system of claim 17, wherein the object edges are discerned from the portion of the digitized data indicative of when the light from the optical scanner transitions from the reflective background to the object and from the object to the reflective background.
 22. The system of claim 17, wherein the object type includes an object size and an object shape.
 23. The system of claim 17, further comprising a barcode reader associated with the optical scanner, the barcode reader extracting information contained in a barcode associated with the object.
 24. The system of claim 17, wherein the object resides in an object carrier.
 25. The system of claim 24, wherein the data processor also detects the presence of the object carrier analyzing the changes in magnitude of sequential portions of the digitized data output by the digitizer.
 26. The system of claim 17, wherein the object is a blood sample vial.
 27. The system of claim 25, wherein the blood sample vial resides in a carrier. 